package com.mt.translator.plugin.base.regexp;

/**
 * 正则表达式常量
 *
 * @author SLY
 * @date 2021/11/25
 */
public class RegexpConst {
    /** 手机号正则验证 */
    public static final String PHONE = "^1(3|4|5|6|7|8|9)\\d{9}$";
    /** 座机号正则验证 */
    public static final String TEL = "^0\\d{2,3}-\\d{7,8}$";
    /** 座机号或手机号正则验证 */
    public static final String PHONE_AND_TEL = "(^1(3|4|5|6|7|8|9)\\d{9}$)|(^0\\d{2,3}-\\d{7,8}$)";
    /** 邮箱正则验证 */
    public static final String EMAIL = "^(?=\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$).{1,64}$";
    /** 身份证 */
    public static final String ID_CARD = "(^\\d{8}(0\\d|10|11|12)([0-2]\\d|30|31)\\d{3}$)|(^\\d{6}(18|19|20)\\d{2}(0[1-9]|10|11|12)([0-2]\\d|30|31)\\d{3}(\\d|X|x)$)";

    /** 日期正则验证YY-MM-DD */
    public static final String DATE = "^((((19|20)\\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\\d|30))|(((19|20)\\d{2})-(0?[13578]|1[02])-31)|(((19|20)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$";
    /** 时间正则验证HH:mm:ss */
    public static final String TIME = "^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$";
    /** 日期时间正则验证YY-MM-DD HH:mm:ss */
    public static final String DATETIME = "^((((19|20)\\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\\d|30))|(((19|20)\\d{2})-(0?[13578]|1[02])-31)|(((19|20)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))\\s(([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9])$";

    /** 非负数字 */
    public static final String NON_NEGATIVE_NUMBER = "^\\d+(\\.\\d+)?$";

}
